/* Copyright (c) Microsoft Corporation                                       */
/*                                                                           */
/* All rights reserved.                                                      */
/*                                                                           */
/* Licensed under the Apache License, Version 2.0 (the "License"); you may   */
/* not use this file except in compliance with the License.  You may obtain  */
/* a copy of the License at http://www.apache.org/licenses/LICENSE-2.0       */
/*                                                                           */
/* THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS     */
/* OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION      */
/* ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR   */
/* PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.                              */
/*                                                                           */
/* See the Apache Version 2.0 License for specific language governing        */
/* permissions and limitations under the License.                            */
/*                                                                           */
#pragma once

#include "pal_abi/pal_types.h"

#define KEYVAL_PORT 4242
#define MAX_KV_SIZE 50000

typedef uint64_t Key; 

typedef struct __attribute__((packed)){
	uint32_t len;
	uint8_t bytes[0];
} Value; 

typedef struct __attribute__((packed)){
	Key key;
	Value val;
} KeyVal;

#define TYPE_LOOKUP 0x01
#define TYPE_INSERT 0x02

typedef struct __attribute__((packed)){
	uint8_t type;
	KeyVal kv;
} KVRequest;

